Remote Creation of a Playback Queue for a Future Event

ABSTRACT

Example embodiments involve remote creation of a playback queue for an event. An example implementation involves a cloud computing system receiving, from a first mobile device, one or more messages representing an instruction to create a playlist for an event. In response, the system creates the playlist in data storage. The system sends, to multiple second mobile devices, one or more respective invitations to the event, wherein each invitation indicates: a time and date for the event and a link to a web interface including controls to add audio tracks to the playlist for the event. The system receives respective sets of input data, each set indicating audio tracks selected via the web interface on a respective second mobile device and, in response, adds the respective audio tracks to the playlist. During the event, the system causes the playlist to be queued in a queue of a media playback system.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims priority under 35 U.S.C. §120 to, and is acontinuation of, U.S. patent application Ser. No. 14/173,253, filed onFeb. 5, 2014, entitled “Remote Creation of a Playback Queue for a FutureEvent,” which is incorporated herein by reference in its entirety.

FIELD OF THE DISCLOSURE

The disclosure is related to consumer goods and, more particularly, tomethods, systems, products, features, services, and other items directedto media playback or some aspect thereof.

BACKGROUND

Digital music has become readily available due in part to thedevelopment of consumer level technology that has allowed people tolisten to digital music on a personal audio device. The consumer'sincreasing preference for digital audio has also resulted in theintegration of personal audio devices into PDAs, cellular phones, andother mobile devices. The portability of these mobile devices hasenabled people to take the music listening experience with them andoutside of the home. People have become able to consume digital music,like digital music files or even Internet radio, in the home through theuse of their computer or similar devices. Now there are many differentways to consume digital music, in addition to other digital contentincluding digital video and photos, stimulated in many ways byhigh-speed Internet access at home, mobile broadband Internet access,and the consumer's hunger for digital media.

Until recently, options for accessing and listening to digital audio inan out-loud setting were severely limited. In 2005, Sonos offered forsale its first digital audio system that enabled people to, among manyother things, access virtually unlimited sources of audio via one ormore networked connected zone players, dynamically group or ungroup zoneplayers upon command, wirelessly send the audio over a local networkamongst zone players, and play the digital audio out loud acrossmultiple zone players in synchrony. The Sonos system can be controlledby software applications running on network capable mobile devices andcomputers.

BRIEF DESCRIPTION OF THE DRAWINGS

Features, aspects, and advantages of the presently disclosed technologymay be better understood with regard to the following description,appended claims, and accompanying drawings where:

FIG. 1A shows an example network configuration in which certainembodiments may be practiced;

FIG. 1B shows an example database stored in memory of a media systemserver, according to example embodiments;

FIG. 2 shows an example media playback system, according to exampleembodiments;

FIG. 3A shows an illustration of an example zone player having abuilt-in amplifier and transducers;

FIG. 3B shows an illustration of an example zone player having abuilt-in amplifier and connected to external speakers;

FIG. 3C shows an illustration of an example zone player connected to anA/V receiver and speakers;

FIG. 4 shows an illustration of an example controller;

FIG. 5 shows an internal functional block diagram of an example zoneplayer;

FIG. 6 shows an internal functional block diagram of an examplecontroller;

FIG. 7 shows an example ad-hoc playback network;

FIGS. 8 and 9 show flowcharts of example methods, according to exampleembodiments; and

FIGS. 10A, 10B, 10C, and 10D show example displays provided by agraphical display of a computing device, according to the examplemethods.

In addition, the drawings are for the purpose of illustrating exampleembodiments, but it is understood that the inventions are not limited tothe arrangements and instrumentality shown in the drawings.

DETAILED DESCRIPTION I. Overview

Embodiments are described herein that may allow for the remote creationof a playback queue of a media playback system in advance of an event.The playback queue may include identification of one or more media items(e.g., songs, videos, streaming data sources, etc.) that are intended tobe played on the media playback system during the event.

The playback queue may be created or modified prior to an event wherethe playback queue may be played by a media playback system. Forexample, a person may be planning a celebration (e.g., a wedding,birthday party, etc.) for some time in the future and may want to allowguests to, prior to the celebration, add music, videos, etc. to aplayback queue that will be played at the celebration.

In example embodiments, the playback queue may be created or modified byone or more remote computing devices that are in communication with themedia playback system via at least a wide area network (WAN). The remotecomputing device may receive an electronic invitation prior to the eventthat permits a user of the remote computing device to add one or moremedia items to the playback queue.

A computing system communicatively coupled to the WAN may store,facilitate the creation of, and otherwise manage the playback queue. Thecomputing system may receive annotation data before, during, and/orafter the event that is associated with a media item from the playbackqueue. The annotation data may be used to tag annotations, such asmessages, videos, photos, or social media statuses, to the media items.The computing system may provide the playback queue along with the tagsfor view by the guests, which may promote a more memorable eventexperience.

As indicated above, the present application involves remotely creating aplayback queue of a media playback system by remote computing devices incommunication with the media playback system via a WAN. In one aspect, amethod is provided. The method involves receiving by a computing devicean electronic invitation to add at least one media item to a playbackqueue of a media playback system, where the electronic invitationcomprises a link to access information identifying a set of media itemsavailable for playback by the media playback system, and where thecomputing device and the media playback system are communicativelycoupled via at least a WAN. The method further involves causing by thecomputing device a graphical display to display the informationidentifying the set of media items available for playback by the mediaplayback system. The method further involves sending by the computingdevice selection data that indicates a selection of a particular mediaitem from the set of media items to be added to the playback queue ofthe media playback system.

In another aspect, a non-transitory computer readable medium isprovided. The non-transitory computer readable having instructionsstored thereon that are executable by at least one processor. Theinstructions include instructions for receiving by a computing device anelectronic invitation to add at least one media item to a playback queueof a media playback system, where the electronic invitation comprises alink to access information identifying a set of media items availablefor playback by the media playback system, and where the computingdevice and the media playback system are communicatively coupled via atleast a WAN. The instructions further include instructions for causingby the computing device a graphical display to display the informationidentifying the set of media items available for playback by the mediaplayback system. The instructions further include instructions forsending by the computing device selection data that indicates aselection of a particular media item from the set of media items to beadded to the playback queue of the media playback system.

In one other aspect, a computing device is provided. The computingdevice includes a graphical display, a network interface, anon-transitory computer readable medium, and program instructions storedon the non-transitory computer readable medium. The program instructionsare executable by at least one processor to cause the computing deviceto receive an electronic invitation to add at least one media item to aplayback queue of a media playback system, where the electronicinvitation comprises a link to access information identifying a set ofmedia items available for playback by the media playback system, andwhere the computing device and the media playback system arecommunicatively coupled via at least a WAN. The program instructions areexecutable by the at least one processor to further cause the computingdevice to cause the graphical display to display the informationidentifying the set of media items available for playback by the mediaplayback system. The program instructions are executable by the at leastone processor to further cause the computing device to send selectiondata that indicates a selection of a particular media item from the setof media items to be added to the playback queue of the media playbacksystem.

In another aspect, a method is provided. The method involves providing,by a computing system that is communicatively coupled to a mediaplayback system via a WAN, a plurality of electronic invitations to aplurality of respective remote computing devices to add at least onemedia item to a playback queue of the media playback system, where eachof the plurality of electronic invitations comprises a link to accessinformation identifying one or more media items available for playbackby the media playback system. The method further involves receiving bythe computing system selection data that indicates one or more mediaitem selections associated with one or more of the plurality ofelectronic invitations. The method further involves populating by thecomputing system the playback queue based on the one or more media itemselections indicated by the received selection data.

In an additional aspect, a non-transitory computer readable medium isprovided. The non-transitory computer readable having instructionsstored thereon that are executable by at least one processor. Theinstructions include instructions for providing, by a computing systemthat is communicatively coupled to a media playback system via a WAN, aplurality of electronic invitations to a plurality of respective remotecomputing devices to add at least one media item to a playback queue ofthe media playback system, where each of the plurality of electronicinvitations comprises a link to access information identifying one ormore media items available for playback by the media playback system.The instructions further include instructions for receiving by thecomputing system selection data that indicates one or more media itemselections associated with one or more of the plurality of electronicinvitations. The instructions further include instructions forpopulating by the computing system the playback queue based on the oneor more media item selections indicated by the received selection data.

In a further aspect, a computing system is provided. The computingdevice includes a network interface, a non-transitory computer readablemedium, and program instructions stored on the non-transitory computerreadable medium. The network interface communicatively couples thecomputing system to a media playback system via a WAN. The programinstructions are executable by at least one processor to cause thecomputing system to provide a plurality of electronic invitations to aplurality of respective remote computing devices to add at least onemedia item to a playback queue of the media playback system, where eachof the plurality of electronic invitations comprises a link to accessinformation identifying one or more media items available for playbackby the media playback system. The program instructions are executable bythe at least one processor to further cause the computing device toreceive selection data that indicates one or more media item selectionsassociated with one or more of the plurality of electronic invitations.The program instructions are executable by the at least one processor tofurther cause the computing device to populate the playback queue basedon the one or more media item selections indicated by the receivedselection data.

Other embodiments, as those discussed in the following and others as canbe appreciated by one having ordinary skill in the art are alsopossible.

II. Example Network Configuration

Referring now to the drawings, in which like numerals can refer to likeparts throughout the figures, FIG. 1A shows an example networkconfiguration 100 in which one or more embodiments disclosed herein canbe practiced or implemented.

The network configuration 100 may include a media playback system 110,one or more computing devices 120, 122, and 124, a media system server130, and a wide area network (“WAN”) 140. The network configuration 100may additionally include a computing device 126 that is associated withthe media playback system 110 such that the computing device 126 maycontrol access to information related to the media playback system 110.It should be understood that the network configuration 100 may include aplurality of the depicted components and/or may also include variousother components, such as, content-provider servers (e.g., Internetradio servers), without departing from the present invention.

The WAN 140 may communicatively couple the various components of thenetwork configuration 100. For example, in such an arrangement, any ofthe computing devices 120-124 may communicate with the media systemserver 130 and/or the media playback system 110 via the WAN 140.Similarly, the media playback system 110 and the media system server 130may communicate via the WAN 140. The WAN 140 may include the Internetand/or a cellular network, among other networks. In exampleimplementations that include the computing device 126, the computingdevice 126 may be communicatively coupled to the media playback system110 via a local area network (e.g., via WiFi) or a personal area network(e.g., via Bluetooth), among other possibilities.

In order to distinguish between a computing device associated with themedia playback system 110 (e.g., the computing device 126) and acomputing device not associated with the media playback system 110(e.g., the computing devices 120-124), and because the computing devices120-124 are communicatively coupled to the media playback system 110 viaat least the WAN 140, hereinafter the computing devices 120-124 may bereferred to as “remote computing devices.”

Generally speaking, the media playback system 110 may be any mediaplayback system configured to receive data over a WAN and playback mediaitems. The media playback system 110 is discussed in further detailbelow with reference to example media playback system 200.

In general, each computing device 120-126 may be any computing deviceconfigured to communicate over a WAN. The computing devices 120-126 mayinclude at least one processor, memory, a graphical display, an inputinterface, and a network interface, among other components. In someinstances, the graphical display and the input interface may be part ofthe same component (e.g., a touchscreen). The network interface mayfacilitate data flow between the computing device and another device viathe WAN 140. The computing devices 120-126 may also include a cameraconfigured to capture image data. Example computing devices include, butare not limited to, cellular phones, smartphones, PDAs, tablets,laptops, desktop computers, video game consoles, and smart TVs.

The media system server 130 may include at least one processor, memory,and a network interface, among other components. The network interfacemay facilitate data flow between the media system server 130 and anotherdevice on the WAN 140.

The media system server 130 may store a database in memory that containsvarious data that may include, for example, one or more sets of mediaitems, one or more playback queues, and/or account informationassociated with a particular media playback system, among other data.FIG. 1B illustrates an example database 131 stored in memory of themedia system server 130, according to example embodiments. As shown, thedatabase 131 may include sets of media items 132, playback queues 134,and account information 136, among other data.

A set of media items may include one or more media items that areavailable for playback by a particular media playback system. Examplemedia items may include audio files, video files, audio-visual files,and streaming data sources (e.g., Internet radio stations), among othertypes of media items. In some implementations, the media items may be acollection of links or pointers (i.e., URI) to the underlying data formedia items that are stored elsewhere, such as on a remote source on theWAN 140. Additionally or alternatively, the media items may includepointers to media content stored on a device local to a media playbacksystem. Further, a media item may include one or more identifiers (e.g.,a media-item title, an artist name, an album title, a genre, etc.) thatare associated with the media item that is available to be played on aparticular media playback system. As shown in FIG. 1B, the sets of mediaitems 132 include media-item files and streaming data sources. The setsof media items further include one or more identifiers for each mediaitem (e.g., media-item titles, artist names, and/or album titles). Otherexamples of sets of media items are certainly possible.

A playback queue (or simply “queue”) may include identification of oneor more media items (e.g., songs, videos, Internet broadcasts, etc.)that are intended to be played on a particular media playback system.For example, as shown in FIG. 1B, the playback queues 134 may includemedia-item title identifiers, among other possibilities. In someimplementations, the media-item titles may be mapped to a link, apointer, or other similar mechanism for locating the underlying data ofthe media item.

A media playback system may be configured to play media items from thequeue according to a specific order (such as an order in which the mediaitems were added), in a random order, or in some other order. A playbackqueue may be created or modified by receiving selection data from one ormore computing devices (e.g., any of the computing devices 120-126).Playback queues are discussed in further detail below.

Account information may include associations between one or morecomputing devices, one or more media playback systems, one or moreplayback queues, and/or one or more sets of media items, among otherassociations. As shown in FIG. 1B, the database 131 of the media systemserver 130 may store account information 136 that includes accountinformation associated with the media playback system 110. The accountinformation may indicate a set of media items (e.g., Set of Media ItemsA) associated with the media playback system 110 where the associatedset of media items may indicate the media items available for playbackon the media playback system 110. The account information may alsoindicate an association between one or more media queues (e.g., PlaybackQueues 1 and 5) and the media playback system 110 where the media queuesmay identify media items that are intended to be played on the mediaplayback system 110, for example, during a particular event. Further,the account information may indicate that the computing device 126 isassociated with the media playback system 110 such that the computingdevice 126 may control access to the set of media items and/or theplayback queues associated with the media playback system 110. Forexample, the computing device 126 may be used to send instruction datato the media system server 130. Instruction data and various aspects ofthe network configuration 100 are discussed in further detail below.

III. Example Media Playback System

FIG. 2 shows an example media playback system 200, according to anexample embodiment. It should be understood that the media playbacksystem 200 is but one example of the media playback system 110 of thenetwork configuration 100 and should not be construed as limiting.

By way of illustration, the media playback system 200 is associated witha home having multiple zones, although it should be understood that thehome could be configured with only one zone. Additionally, one or morezones can be added to the media playback system 200 over time. Each zonemay be assigned by a user to a different room or space, such as, forexample, an office, bathroom, bedroom, kitchen, dining room, familyroom, home theater room, utility or laundry room, and patio. A singlezone might also include multiple rooms or spaces if so configured. Withrespect to FIG. 2, one or more of zone players 202-224 are shown in eachrespective zone. The zone players 202-224, also referred to herein asplayback devices, multimedia units, speakers, players, and so on,provide audio, video, and/or audiovisual output. A controller 230 (e.g.,shown in the kitchen for purposes of this illustration) provides controlto the media playback system 200. The controller 230 may be fixed to azone, or alternatively, it may be mobile such that it can be moved aboutthe zones. The media playback system 200 may also include more than theone controller 230, and additional controllers may be added to thesystem over time.

The media playback system 200 illustrates an example whole house mediasystem, though it is understood that the technology described herein isnot limited to, among other things, its particular place of applicationor to an expansive system like the whole house media playback system 200of FIG. 2.

1. Example Zone Players

FIGS. 3A, 3B, and 3C show example types of zone players. Zone players300, 302, and 304 of FIGS. 3A, 3B, and 3C, respectively, can correspondto any of the zone players 202-224 of FIG. 2, for example. In someembodiments, audio is reproduced using only a single zone player, suchas by a full-range player. In some embodiments, audio is reproducedusing two or more zone players, such as by using a combination offull-range players or a combination of full-range and specializedplayers. In some embodiments, each zone player 300-304 may also bereferred to as a “smart speaker,” because they may contain processingcapabilities beyond the reproduction of audio, more of which isdescribed below.

FIG. 3A illustrates the zone player 300 that includes sound producingequipment 308 capable of reproducing full-range sound. The sound maycome from an audio signal that is received and processed by the zoneplayer 300 over a wired or wireless data network. The sound producingequipment 308 may include one or more built-in amplifiers and one ormore acoustic transducers (e.g., speakers). A built-in amplifier isdescribed more below with respect to FIG. 5. A speaker or acoustictransducer can include, for example, any of a tweeter, a mid-rangedriver, a low-range driver, and a subwoofer. In some embodiments, thezone player 300 can be statically or dynamically configured to playstereophonic audio, monaural audio, or both. In some embodiments, thezone player 300 may be dynamically configured to reproduce a subset offull-range sound, such as when the zone player 300 is grouped with otherzone players to play stereophonic audio, monaural audio, and/or surroundaudio or when the media content received by the zone player 300 is lessthan full-range.

FIG. 3B illustrates the zone player 302 that includes a built-inamplifier to power a set of detached speakers 310. A detached speakercan include, for example, any type of loudspeaker. The zone player 302may be configured to power one, two, or more separate loudspeakers. Thezone player 302 may be configured to communicate an audio signal (e.g.,right and left channel audio or more channels depending on itsconfiguration) to the set of detached speakers 310 via a wired path.

FIG. 3C illustrates the zone player 304 that does not include a built-inamplifier, but is configured to communicate an audio signal, receivedover a data network, to an audio (or “audio/video”) receiver 314 withbuilt-in amplification.

Referring back to FIG. 2, in some embodiments, one, some, or all of thezone players 202-224 can retrieve audio directly from a source. Forexample, a particular zone player in a zone or zone group may beassigned to a playback queue. The playback queue may contain informationcorresponding to zero or more media items (e.g., audio items) forplayback by the associated zone or zone group. The playback queue may bestored in memory on a zone player or some other designated device. Eachitem contained in the playback queue may comprise a uniform resourceidentifier (URI) or some other identifier that can be used by the zoneplayer(s) to seek out and/or retrieve the audio items from theidentified audio source(s). Depending on the item, the audio sourcemight be found on the Internet (e.g., the cloud), locally from anotherdevice over the data network 228 (described further below), from thecontroller 230, stored on the zone player itself, or from an audiosource communicating directly to the zone player. In some embodiments,the zone player can reproduce the audio itself (e.g., play the audio),send the audio to another zone player for reproduction, or both wherethe audio is reproduced by the zone player as well as one or moreadditional zone players (possibly in synchrony). In some embodiments,the zone player may play a first audio content (or alternatively, maynot play the content at all), while sending a second, different audiocontent to another zone player(s) for reproduction.

By way of illustration, SONOS, Inc. of Santa Barbara, Calif. presentlyoffers for sale zone players referred to as a “PLAY:5,” “PLAY:3,”“PLAYBAR,” “CONNECT:AMP,” “CONNECT,” and “SUB.” Any other past, present,and/or future zone players can additionally or alternatively be used toimplement the zone players of example embodiments disclosed herein.Additionally, it is understood that a zone player is not limited to theparticular examples illustrated in FIGS. 3A, 3B, and 3C or to the SONOSproduct offerings. For example, a zone player may include a wired orwireless headphone. In yet another example, a zone player might includea sound bar for television. In yet another example, a zone player mayinclude or interact with a docking station for an Apple iPod™ or similardevice.

2. Example Controllers

FIG. 4 illustrates an example wireless controller 400 in a dockingstation 402. By way of illustration, the controller 400 may correspondto the controller 230 of FIG. 2. The docking station 402, if provided orused, may provide power to the controller 400 and additionally maycharge a battery of the controller 400. In some embodiments, thecontroller 400 may be provided with a touch screen 404 that allows auser to interact through touch with the controller 400, for example, toretrieve and navigate a playlist of audio items, modify and/or clear theplayback queue of one or more zone players, control other operations ofone or more zone players, and provide overall control of the mediaplayback system 200. In other embodiments, other input mechanisms suchas voice control may be used to interact with the controller 400. Incertain embodiments, any number of controllers can be used to controlthe media playback system 200. In some embodiments, there may be a limitset on the number of controllers that can control the media playbacksystem 200. The controllers might be wireless like the wirelesscontroller 400 or wired to the data network 228.

In some embodiments, if more than one controller is used in the mediaplayback system 200 of FIG. 2, each controller may be coordinated todisplay common content, and may all be dynamically updated to indicatechanges made to the media playback system 200 from a single controller.Coordination can occur, for instance, by a controller periodicallyrequesting a state variable directly or indirectly from one or more ofthe zone players; the state variable may provide information about themedia playback system 200, such as current zone group configuration,what is playing in one or more zones, volume levels, and other items ofinterest. The state variable may be passed around on the data network228 between zone players (and controllers, if so desired) as needed oras often as programmed.

In addition, an application running on any network-enabled portabledevice, such as an iPhone™, iPad™, Android™ powered phone or tablet, orany other smart phone or network-enabled device can be used as thecontroller 230. An application running on a laptop or desktop personalcomputer (PC) or Mac™ can also be used as the controller 230. Suchcontrollers may connect to the media playback system 200 through aninterface with the data network 228, a zone player, a wireless router,or using some other configured connection path. Example controllersoffered by Sonos, Inc. of Santa Barbara, Calif. include a “Controller200,” “SONOS® CONTROL,” “SONOS® Controller for iPhone™,” “SONOS®Controller for iPad™,” “SONOS® Controller for Android™,” “SONOS®Controller for Mac™ or PC.”

3. Example Data Connection

The zone players 202-224 of FIG. 2 may be coupled directly or indirectlyto a data network, such as data network 228. The controller 230 may alsobe coupled directly or indirectly to the data network 228 or individualzone players. The data network 228 is represented by an octagon in thefigure to stand out from other representative components. While the datanetwork 228 is shown in a single location, it is understood that such anetwork is distributed in and around the media playback system 200.Particularly, the data network 228 can be a wired network, a wirelessnetwork, or a combination of both wired and wireless networks. In someembodiments, one or more of the zone players 202-224 may be wirelesslycoupled to the data network 228 based on a proprietary mesh network. Insome embodiments, one or more of the zone players may be coupled to thedata network 228 using a centralized access point such as a wired orwireless router. In some embodiments, one or more of the zone players202-224 may be coupled via a wire to the data network 228 using Ethernetor similar technology. In addition to the one or more zone players202-224 connecting to the data network 228, the data network 228 canfurther allow access to a WAN, such as the WAN 140 of FIG. 1A.

In some embodiments, connecting any of the zone players 202-224, or someother connecting device, to a broadband router, may create the datanetwork 228. Other of the zone players 202-224 may then be added wiredor wirelessly to the data network 228. For example, a zone player (e.g.,any of the zone players 202-224) can be added to the media playbacksystem 200 by simply pressing a button on the zone player itself (orperform some other action), which enables a connection to be made to thedata network 228. The broadband router can be connected to an InternetService Provider (ISP), for example. The broadband router can be used toform another data network within the media playback system 200, whichcan be used in other applications (e.g., web surfing). The data network228 can also be used in other applications, if so programmed. An examplesecond network may implement SONOSNET™ protocol, developed by SONOS,Inc. of Santa Barbara. SONOSNET™ represents a secure, AES-encrypted,peer-to-peer wireless mesh network. Alternatively, in certainembodiments, the data network 228 may be the same network, such as atraditional wired or wireless network, used for other applications inthe household.

4. Example Zone Configurations

A particular zone can contain one or more zone players. For example, thefamily room of FIG. 2 contains the two zone players 206 and 208, whilethe kitchen is shown with the one zone player 202. In another example,the home theater room contains additional zone players to play audiofrom a 5.1 channel or greater audio source (e.g., a movie encoded with5.1 or greater audio channels). In some embodiments, one can position azone player in a room or space and assign the zone player to a new orexisting zone via the controller 230. As such, zones may be created,combined with another zone, removed, and given a specific name (e.g.,“Kitchen”), if so desired and programmed to do so with the controller230. Moreover, in some embodiments, zone configurations may bedynamically changed even after being configured using the controller 230or some other mechanism.

In some embodiments, a “bonded zone” contains two or more zone players,such as the two zone players 206 and 208 in the family room, whereby thetwo zone players 206 and 208 can be configured to play the same audiosource in synchrony. In one example, the two zone players 206 and 208can be paired to play two separate sounds in left and right channels,for example. In other words, the stereo effects of a sound can bereproduced or enhanced through the two zone players 206 and 208, one forthe left sound and the other for the right sound. In another example twoor more zone players can be sonically consolidated to form a single,consolidated zone player. A consolidated zone player (though made up ofmultiple, separate devices) can be configured to process and reproducesound differently than an unconsolidated zone player or zone playersthat are paired, because a consolidated zone player has additionalspeaker drivers from which sound can be passed. The consolidated zoneplayer can further be paired with a single zone player or yet anotherconsolidated zone player. Each playback device of a consolidatedplayback device can be set in a consolidated mode, for example.

In certain embodiments, paired zone players (also referred to as “bondedzone players”) can play audio in synchrony with other zone players inthe same or different zones.

According to some embodiments, one can continue to do any of: group,consolidate, and pair zone players, for example, until a desiredconfiguration is complete. The actions of grouping, consolidation, andpairing are preferably performed through a control interface, such asusing the controller 230, and not by physically connecting andre-connecting speaker wire, for example, to individual, discretespeakers to create different configurations. As such, certainembodiments described herein provide a more flexible and dynamicplatform through which sound reproduction can be offered to theend-user.

5. Example Audio Sources

In some embodiments, each zone can play from the same audio source asanother zone or each zone can play from a different audio source. Forexample, someone can be grilling on the patio and listening to jazzmusic via the zone player 224, while someone is preparing food in thekitchen and listening to classical music via the zone player 202.Further, someone can be in the office listening to the same jazz musicvia the zone player 210 that is playing on the patio via the zone player224. In some embodiments, the jazz music played via the zone players 210and 224 may be played in synchrony. Synchronizing playback amongst zonesallows for an individual to pass through zones while seamlessly (orsubstantially seamlessly) listening to the audio. Further, zones can beput into a “party mode” such that all associated zones will play audioin synchrony.

Sources of audio content that may be played by the zone players 202-224are numerous. In some embodiments, audio on a zone player itself may beaccessed and played. In some embodiments, audio on a controller may beaccessed via the data network 228 and played. In some embodiments, musicfrom a personal library stored on a computer or networked-attachedstorage (NAS) may be accessed via the data network 228 and played. Insome embodiments, Internet radio stations, shows, and podcasts may beaccessed via the data network 228 and played. Music or cloud servicesthat let a user stream and/or download music and audio content may beaccessed via the data network 228 and played. Further, music may beobtained from traditional sources, such as a turntable or CD player, viaa line-in connection to a zone player, for example. Audio content mayalso be accessed using a different protocol, such as Airplay™ which is awireless technology by Apple, Inc., for example. Audio content receivedfrom one or more sources can be shared amongst the zone players 202 to224 via the data network 228 and/or the controller 230. Theabove-disclosed sources of audio content are referred to herein asnetwork-based audio information sources. However, network-based audioinformation sources are not limited thereto.

In some embodiments, the example home theater zone players 216, 218, 220are coupled to an audio information source such as a television 232. Insome examples, the television 232 may be used as a source of audio forthe home theater zone players 216, 218, 220, while in other examplesaudio information from the television 232 may be shared with any of thezone players 202-224 in the media playback system 200.

IV. Example Zone Players

Referring now to FIG. 5, there is shown an example block diagram of azone player 500 in accordance with an embodiment. The zone player 500may include a network interface 502, at least one processor 508, amemory 510, an audio processing component 512, one or more softwaremodules 514, an audio amplifier 516, a speaker unit 518 coupled to theaudio amplifier 516, at least one battery 530, and a power interface535. FIG. 3A shows an example illustration of such a zone player. Othertypes of zone players may not include the speaker unit 518 (e.g., suchas shown in FIG. 3B) or the audio amplifier 516 (e.g., such as shown inFIG. 3C). Further, it is contemplated that the zone player 500 can beintegrated into another component. For example, the zone player 500could be constructed as part of a television, lighting, or some otherdevice for indoor or outdoor use.

In some embodiments, the network interface 502 facilitates a data flowbetween the zone player 500 and other devices on the data network 228.In some embodiments, in addition to getting audio from another zoneplayer or device on the data network 228, the zone player 500 may accessaudio directly from the audio source, such as over a WAN (e.g., the WAN140) or on the local network. In some embodiments, the network interface502 can further handle the address part of each packet so that it getsto the right destination or intercepts packets destined for the zoneplayer 500. Accordingly, in certain embodiments, each of the packetsincludes an Internet Protocol (IP)-based source address as well as anIP-based destination address.

In some embodiments, the network interface 502 can include one or bothof a wireless interface 504 and a wired interface 506. The wirelessinterface 504, also referred to as a radio frequency (RF) interface,provides network interface functions for the zone player 500 towirelessly communicate with other devices (e.g., other zone player(s),speaker(s), receiver(s), component(s) associated with the data network228, and so on) in accordance with a communication protocol (e.g., anywireless standard including IEEE 802.11a, 802.11b, 802.11g, 802.11n,802.11ac, 802.15, 4G mobile communication standard, and so on). Thewireless interface 504 may include one or more radios. To receivewireless signals and to provide the wireless signals to the wirelessinterface 504 and to transmit wireless signals, the zone player 500includes one or more antennas 520. The wired interface 506 providesnetwork interface functions for the zone player 500 to communicate overa wire with other devices in accordance with a communication protocol(e.g., IEEE 802.3). In some embodiments, a zone player may includemultiple wireless 504 interfaces. In some embodiments, a zone player mayinclude multiple wired 506 interfaces. In some embodiments, a zoneplayer may include both of the interfaces 504 and 506. In someembodiments, a zone player may include only the wireless interface 504or the wired interface 506.

In some embodiments, the at least one processor 508 is a clock-drivenelectronic device that is configured to process input data according toinstructions stored in the memory 510. The memory 510 is data storagethat can be loaded with the one or more software modules 514, which canbe executed by the at least one processor 508 to achieve certain tasks.In the illustrated embodiment, the memory 510 is a tangiblemachine-readable medium storing instructions that can be executed by theat least one processor 508. In some embodiments, a task might be for thezone player 500 to retrieve audio data from another zone player or adevice on a network (e.g., using a uniform resource locator (URL) orsome other identifier). In some embodiments, a task may be for the zoneplayer 500 to send audio data to another zone player or device on anetwork. In some embodiments, a task may be for the zone player 500 tosynchronize playback of audio with one or more additional zone players.In some embodiments, a task may be to pair the zone player 500 with oneor more zone players to create a multi-channel audio environment.Additional or alternative tasks (e.g., those discussed below) can beachieved via the one or more software modules 514 and the at least oneprocessor 508.

The audio processing component 512 can include one or moredigital-to-analog converters (DAC), an audio preprocessing component, anaudio enhancement component or a digital signal processor, and so on. Insome embodiments, the audio processing component 512 may be part of theat least one processor 508. In some embodiments, the audio that isretrieved via the network interface 502 may be processed and/orintentionally altered by the audio processing component 512. Further,the audio processing component 512 can produce analog audio signals. Theprocessed analog audio signals may then be provided to the audioamplifier 516 for playback through the speaker unit 518. In addition,the audio processing component 512 can include circuitry to processanalog or digital signals as inputs to play from the zone player 500,send to another zone player on a network, or both play and send toanother zone player on the network. An example input includes a line-inconnection (e.g., an auto-detecting 3.5 mm audio line-in connection).

The audio amplifier 516 is a device(s) that amplifies audio signals to alevel for driving one or more speakers of the speaker unit 518. The oneor more speakers 518 can include an individual transducer (e.g., a“driver”) or a complete speaker system that includes an enclosureincluding one or more drivers. A particular driver can be a subwoofer(e.g., for low frequencies), a mid-range driver (e.g., for middlefrequencies), and a tweeter (e.g., for high frequencies), for example.An enclosure can be sealed or ported, for example. Each transducer maybe driven by its own individual amplifier.

A commercial example, presently known as the PLAY:5™, is a zone playerwith a built-in amplifier and speakers that is capable of retrievingaudio directly from the source, such as on the Internet or on the localnetwork, for example. In particular, the PLAY:5™ is a five-amp,five-driver speaker system that includes two tweeters, two mid-rangedrivers, and one woofer. When playing audio content via the PLAY:5, theleft audio data of a track is sent out of the left tweeter and leftmid-range driver, the right audio data of a track is sent out of theright tweeter and the right mid-range driver, and mono bass is sent outof the subwoofer. Further, both mid-range drivers and both tweeters havethe same equalization (or substantially the same equalization). That is,they are both sent the same frequencies but from different channels ofaudio. Audio from Internet radio stations, online music and videoservices, downloaded music, analog audio inputs, television, DVD, and soon, can be played from the PLAY:5™.

V. Example Controller

Referring now to FIG. 6, there is shown an example block diagram for acontroller 600, which can correspond to the controller 230 in FIG. 2.The controller 600 can be used to facilitate the control of multi-mediaapplications, automation and others in a system. In particular, thecontroller 600 may be configured to facilitate a selection of aplurality of audio sources available on the data network 228 and enablecontrol of one or more zone players (e.g., the zone players 202-224 inFIG. 2) through a wireless or wired network interface 608. According toone embodiment, the wireless communications may be based on an industrystandard (e.g., infrared, radio, wireless standards including IEEE802.11a, 802.11b, 802.11g, 802.11n, 802.11ac, 802.15, 4G mobilecommunication standard, and so on). Further, when a particular audio isbeing accessed via the controller 600 or being played via a zone player,a picture (e.g., album art) or any other data, associated with the audioand/or audio source can be transmitted from a zone player or otherelectronic device to the controller 600 for display.

The controller 600 may be provided with a screen 602 and an inputinterface 614 that may allow a user to interact with the controller 600,for example, to navigate a playlist of media items and to controloperations of one or more zone players. The screen 602 on the controller600 can be an LCD screen, for example. The screen 600 communicates withand is commanded by a screen driver 604 that is controlled by amicrocontroller (e.g., a processor) 606. The controller memory 610 canbe loaded with one or more application modules 612 that can be executedby the microcontroller 606 with or without a user input via the userinterface 614 to achieve certain tasks. In some embodiments, theapplication module 612 may be configured to facilitate grouping a numberof selected zone players into a zone group to facilitate synchronizedplayback amongst the zone players in the zone group. In someembodiments, the application module 612 may be configured to control theaudio sounds (e.g., volume) of the zone players in a zone group. Inoperation, when the microcontroller 606 executes one or more of theapplication modules 612, the screen driver 604 may generate controlsignals to drive the screen 602 to display an application specific userinterface accordingly.

The controller 600 includes a network interface 608 that may facilitatewired or wireless communication with a zone player. In some embodiments,the commands such as volume control and audio playback synchronizationmay be sent via the network interface 608. In some embodiments, a savedzone group configuration may be transmitted between a zone player and acontroller via the network interface 608. The controller 600 can controlone or more zone players, such as the zone players 202-224 of FIG. 2.There can be more than one controller for a particular system, and eachcontroller may share common information with another controller, orretrieve the common information from a zone player, if such a zoneplayer stores configuration data (e.g., such as a state variable).Further, a controller can be integrated into a zone player.

It should be noted that other network-enabled devices such as aniPhone™, iPad™ or any other smartphone or network-enabled device (e.g.,a networked computer such as a PC or Mac™) can also be used as acontroller to interact or control zone players in a particularenvironment. In some embodiments, a software application or upgrade canbe downloaded onto a network-enabled device to perform the functionsdescribed herein.

In certain embodiments, a user can create a zone group (also referred toas a bonded zone) including at least two zone players from thecontroller 600. The zone players in the zone group can play audio in asynchronized fashion, such that all of the zone players in the zonegroup playback an identical audio source or a list of identical audiosources in a synchronized manner such that no (or substantially no)audible delays or hiccups are to be heard. Similarly, in someembodiments, when a user increases the audio volume of the group fromthe controller 500, the signals or data of increasing the audio volumefor the group are sent to one of the zone players and causes other zoneplayers in the group to be increased together in volume.

A user via the controller 600 can group zone players into a zone groupby activating a “Link Zones” or “Add Zone” soft button, or de-grouping azone group by activating an “Unlink Zones” or “Drop Zone” button. Forexample, one mechanism for ‘joining’ zone players together for audioplayback is to link a number of zone players together to form a group.To link a number of zone players together, a user can manually link eachzone player or room one after the other. For example, assume that thereis a multi-zone system that includes the following zones: Bathroom,Bedroom, Den, Dining Room, Family Room, and Foyer. In certainembodiments, a user can link any number of the six zone players, forexample, by starting with a single zone and then manually linking eachzone to that zone.

In certain embodiments, a set of zones can be dynamically linkedtogether using a command to create a zone scene or theme (subsequent tofirst creating the zone scene). For instance, a “Morning” zone scenecommand can link the Bedroom, Office, and Kitchen zones together in oneaction. Without this single command, the user would manually andindividually link each zone. The single command may include a mouseclick, a double mouse click, a button press, a gesture, or some otherprogrammed or learned action. Other kinds of zone scenes can beprogrammed or learned by the system over time.

In certain embodiments, a zone scene can be triggered based on time(e.g., an alarm clock function). For instance, a zone scene can be setto apply at 8:00 am. The system can link appropriate zonesautomatically, set specific music to play, and then stop the music aftera defined duration and revert the zones to their prior configuration.Although any particular zone can be triggered to an “On” or “Off” statebased on time, for example, a zone scene enables any zone(s) linked tothe scene to play a predefined audio (e.g., a favorable song, apredefined playback queue) at a specific time and/or for a specificduration. If, for any reason, the scheduled music failed to be played(e.g., an empty playback queue, no connection to a share, failedUniversal Plug and Play (UPnP), no Internet connection for an InternetRadio station, and so on), a backup buzzer can be programmed to sound.The buzzer can include a sound file that is stored in a zone player, forexample.

VI. Playback Queue

As discussed above, in some embodiments, a media playback system may beassociated with one or more playback queues that identify one or moremedia items for playback by the media playback system. The media itemsidentified in a playback queue may be represented to a user via aninterface on a controller (e.g., the controller 130) or other computingdevice (e.g., the computing devices 120-124). A playback queue that isdisplayed to a user may be referred herein as a playlist.

Each item in a playback queue may be represented on an interface by anelement such as, for example, a media-item title, an artist name, analbum title, an album art, a streaming data source name (e.g., anInternet radio station name), or other such representation. Further, theplaylist may indicate how the media playback system is traversing theplayback queue, such as by highlighting the “now playing” item, grayingout the previously played item(s), highlighting the to-be-playeditem(s), and so on.

A playback queue of a media playback system may be created (populated)and/or modified via a local device within the media playback system(e.g., the controller 230) or a remote device/system (e.g., the mediasystem server 130). In a local creation of a playback queue, a user of alocal device may populate the playback queue with media items ofinterest, for example, by selecting media items from a set of mediaitems available for playback by the media playback system. In a remotecreation of a playback queue, one or more computing devices (e.g., thecomputing devices 120-124) may transmit selection data to a media systemserver (e.g., the media system server 130). The selection data mayindicate a selection of a particular media item from the set of mediaitems to be added to the playback queue of a particular media playbacksystem. The media system server may then populate the playback queueaccording to the selections.

In implementations that involve a remote creation, a media system server(e.g., the media system 130) may transmit one or more playback queues toa media playback system (e.g., the media playback system 110) via one ormore data networks (e.g., the WAN 140). Remote creation of playbackqueues is discussed in further detail below.

In some embodiments, a single zone player is assigned to a playbackqueue. For example, zone player 214 in the bathroom of FIG. 2 may belinked or assigned to a “Bathroom” playback queue. In an embodiment, the“Bathroom” playback queue might have been established by the system as aresult of the user naming the zone player 214 to the bathroom. As such,contents populated and identified in the “Bathroom” playback queue canbe played via the zone player 214 (the bathroom zone).

In some embodiments, a zone or zone group is assigned to a playbackqueue. For example, zone players 206 and 208 in the family room of FIG.2 may be linked or assigned to a “Family room” playback queue. Inanother example, if family room and dining room zones were grouped, thenthe new group would be linked or assigned to a family room+dining roomplayback queue. In some embodiments, the family room+dining roomplayback queue would be established based upon the creation of thegroup. In some embodiments, upon establishment of the new group, thefamily room+dining room playback queue can automatically include thecontents of one (or both) of the playback queues associated with eitherthe family room or dining room or both. In one instance, if the userstarted with the family room and added the dining room, then thecontents of the family room playback queue would become the contents ofthe family room+dining room playback queue. In another instance, if theuser started with the family room and added the dining room, then thefamily room playback queue would be renamed to the family room+diningroom playback queue. If the new group was “ungrouped,” then the familyroom+dining room playback queue may be removed from the system and/orrenamed to one of the zones (e.g., renamed to “family room” or “diningroom”). After ungrouping, each of the family room and the dining roomwill be assigned to a separate playback queue. One or more of the zoneplayers in the zone or zone group may store in memory the associatedplayback queue.

As such, when zones or zone groups are “grouped” or “ungrouped”dynamically by the user via a controller, the system will, in someembodiments, establish or remove/rename playback queues respectively, aseach zone or zone group is to be assigned to a playback queue. In otherwords, the playback queue operates as a container that can be populatedwith media items for playback by the assigned zone. In some embodiments,the media items identified in a playback queue can be manipulated (e.g.,re-arranged, added to, deleted from, and so on).

VII. Example Ad-Hoc Network

Particular examples are now provided in connection with FIG. 7 todescribe, for purposes of illustration, certain embodiments to provideand facilitate connection to a media playback network. FIG. 7 shows thatthere are three zone players 702, 704 and 706 and a controller 708 thatform a network branch that is also referred to as an Ad-Hoc network 710.The Ad-Hoc network 710 may be wireless, wired, or a combination of wiredand wireless technologies. In general, an Ad-Hoc (or “spontaneous”)network is a local area network or other small network in which there isgenerally no one access point for all traffic. With an establishedAd-Hoc network 710, the devices 702, 704, 706 and 708 can allcommunicate with each other in a “peer-to-peer” style of communication,for example. Furthermore, devices may join and/or leave from the Ad-Hocnetwork 710, and the Ad-Hoc network 710 will automatically reconfigureitself without needing the user to reconfigure the Ad-Hoc network 710.While an Ad-Hoc network is referenced in FIG. 7, it is understood that aplayback network may be based on a type of network that is completely orpartially different from an Ad-Hoc network (e.g., a mesh network).

Using the Ad-Hoc network 710, the devices 702, 704, 706, and 708 canshare or exchange one or more audio sources and be dynamically grouped(or ungrouped) to play the same or different audio sources. For example,the zone players 702 and 704 may be grouped to playback one piece ofmusic, and at the same time, the zone player 706 may playback anotherpiece of music. In other words, the devices 702, 704, 706 and 708, asshown in FIG. 7, form a HOUSEHOLD that distributes audio and/orreproduces sound. As used herein, the term HOUSEHOLD (provided inuppercase letters to disambiguate from the user's domicile) is used torepresent a collection of networked devices that are cooperating toprovide an application or service.

In certain embodiments, a household identifier (HHID) is a short stringor an identifier that is computer-generated to help ensure that it isunique. Accordingly, the Ad-Hoc network 710 can be characterized by aunique HHID and a unique set of configuration variables or parameters,such as channels (e.g., respective frequency bands), service setidentifier (SSID) (a sequence of alphanumeric characters as a name of awireless network), and WEP keys (wired equivalent privacy) or othersecurity keys. In certain embodiments, SSID is set to be the same asHHID.

In certain embodiments, each HOUSEHOLD may include two types of networknodes: a control point (CP) and a zone player (ZP). The CP controls anoverall network setup process and sequencing, including an automaticgeneration of required network parameters (e.g., security keys). In anembodiment, the CP also provides the user with a HOUSEHOLD configurationuser interface. The CP function can be provided by a computer running aCP application module, or by a handheld controller (e.g., the controller708) also running a CP application module, for example. The ZP is anyother device on the network that is placed to participate in theautomatic configuration process. In certain embodiments, the ZP, as anotation used herein, may include the controller 708 or a computingdevice, for example. In some embodiments, the functionality, or certainparts of the functionality, in both the CP and the ZP may be combined ata single node (e.g., a ZP contains a CP or vice-versa).

In certain embodiments, HOUSEHOLD configuration may involve multiple CPsand ZPs that rendezvous and establish a known configuration such thatthey can use a standard networking protocol (e.g., IP over Wired orWireless Ethernet) for communication. In an embodiment, two types ofnetworks/protocols may be employed: Ethernet 802.3 and Wireless 802.11g.Interconnections between a CP and a ZP can use either of thenetworks/protocols. A device in the system as a member of a HOUSEHOLDcan connect to both networks simultaneously.

In an environment that has both networks in use, it is assumed that atleast one device in a system is connected to both as a bridging device,thus providing bridging services between wired/wireless networks forothers. The zone player 702 in FIG. 7 is shown to be connected to bothnetworks, for example. The connectivity to the network 712 may be basedon Ethernet and/or Wireless, while the connectivity to other devices702, 704 and 708 may be based on Wireless and Ethernet if so desired.

It is understood, however, that in some embodiments each zone player702-706 may access the Internet when retrieving media from the cloud(e.g., the Internet) via the bridging device. For example, the zoneplayer 702 may contain a uniform resource locator (URL) that specifiesan address to a particular audio track in the cloud. Using the URL, thezone player 702 may retrieve the audio track from the cloud, andultimately play the audio out of one or more of the other zone players.

VIII. Methods for Remote Creation of a Playback Queue

As discussed above, a media playback system may be associated with aplayback queue, and in some situations, it may be desirable to remotelycreate and/or modify the playback queue.

FIGS. 8 and 9 are flowcharts that depict example methods for remotelycreating a playback queue. The example methods may be carried out on thenetwork configuration 100, but it should be understood that the methodsmay be carried out on other suitable network configurations as well. Itshould be understood that some or all of the blocks of methods 800 andmethods 900 may be performed simultaneously and/or sequentially.

For clarity, the methods are described herein with reference to FIGS.10A-10D, which depict example displays provided by a graphical displayof a computing device, according to the example methods. It should beunderstood, however, that this is for purposes of example andexplanation only and that various other example displays are certainlypossible.

Furthermore, those skilled in the art will understand that theflowcharts described herein depict functionality and operation ofcertain implementations of example embodiments. In this regard, eachblock of each flowchart may represent a module, a segment, or a portionof program code, which includes one or more instructions executable by aprocessor for implementing specific logical functions or steps in theprocess. The program code may be stored on any type of computer readablemedium, e.g., such as a storage device including a disk or hard drive.In addition, each block may represent circuitry that is wired to performthe specific logical functions in the process. Alternativeimplementations are included within the scope of the example embodimentsof the present application in which functions may be executed out oforder from that shown or discussed, including substantially concurrentor in reverse order, depending on the functionality involved, as wouldbe understood by those skilled in the art.

1. First Example Method

FIG. 8 illustrates a method 800 for remotely creating a playback queueof a media playback system, according to example embodiments. The method800 may be carried out by a computing device (e.g., any of the computingdevices 120-124 of FIG. 1A). For purposes of example and explanationonly, the method 800 will be described as being carried out by thecomputing device 120.

The method 800 may begin at block 802 with receiving by a computingdevice an electronic invitation to add at least one media item to aplayback queue of a media playback system, where the electronicinvitation includes a link to access information identifying a set ofmedia items available for playback by the media playback system, andwhere the computing device and the media playback system arecommunicatively coupled via at least a WAN. At block 804, the method 800may involve causing by the computing device a graphical display todisplay the information identifying the set of media items available forplayback by the media playback system. At block 806, the method 800 mayinvolve sending by the computing device selection data that indicates aselection of a particular media item from the set of media items to beadded to the playback queue of the media playback system. At block 808,the method 800 may optionally or additionally involve sending by thecomputing device annotation data that indicates annotation informationthat is associated with the selection to be added to the playback queue.Each of the blocks shown with respect to FIG. 8 is discussed furtherbelow.

a. Receiving Electronic Invitation

The method 800 may begin at block 802 with receiving by a computingdevice an electronic invitation to add at least one media item to aplayback queue of a media playback system, where the electronicinvitation includes a link to access information identifying a set ofmedia items available for playback by the media playback system, andwhere the computing device and the media playback system arecommunicatively coupled via at least a WAN. In example implementations,receiving the electronic invitation may involve the computing device 120receiving the electronic invitation from the media system server 130 viathe WAN 140.

The electronic invitation may take several forms. For example, theelectronic invitation may be an email, a text message (e.g., a SMS orMMS message), or a social media communication, among otherpossibilities.

Broadly speaking, the electronic invitation may include a request forthe invitation recipient to attend an event at a future date and to,prior to the event, add media items to a playback queue that may beplayed at the event by a media playback system (e.g., the media playbacksystem 110). The electronic invitation may include request data thatindicates a request for the invitation recipient to add at least onemedia item to the playback queue. The request data may be text data,video data, and/or audio data that when output by the computing device120 indicates a request that the invitation recipient add at least onemedia item to the playback queue.

The electronic invitation may further include a link that providesaccess to the information identifying a set of media items available forplayback by the media playback system. For example, the link may provideaccess to certain data from the database 131 of FIG. 1B that isassociated with the media playback system 110.

In example implementations, the link may include a uniform resourcelocator (URL) that identifies a particular resource (e.g., the mediasystem server 130) that is associated with the electronic invitation andthat stores the information identifying the set of media items. The URLmay additionally or alternatively identify an Internet location of theparticular resource. In some implementations, the link may be ahyperlink that is configured to direct the computing device 120 to theparticular resource upon a user input indicating a selection of thehyperlink.

Further, the link may be configured such that tracking data may be sentto the particular resource when the link is accessed. The particularresource may use the tracking data to identify the number of usersaccessing the URL. Additionally or alternatively, the particularresource may limit the number of users that may access the URL and usethe tracking data to determine whether a predefined threshold has beenmet. If the threshold has been met, the particular resource may preventfurther access to the set of media items. Furthermore, the particularresource may additionally or alternatively limit a user to a thresholdnumber of added media items. Once the particular user meets thatthreshold, the particular resource may prevent the user from adding anyadditional media items. Other examples are certainly possible.

In some implementations, the electronic invitation may further include atime element that indicates a time after which media items will not beavailable to be added to the playback queue. That is, the time elementmay define the lifetime of the electronic invitation during whichinvitation recipients may select media items to be added to the playbackqueue. In one example, the time element may include a countdown timer,and the media items will not be available to be added to the playbackqueue upon expiration of the countdown timer. In any event, after thetime element indicates that the lifetime of the electronic invitationhas expired, the link may expire or otherwise become inactive, or userpermissions may be altered such that viewing a playlist may be allowedbut adding additional media items to the playback queue is not allowed.Other examples are also possible.

Additionally, the electronic invitation may further include a queueprofile that defines characteristics of the queue and how the playbackqueue will be played by the media playback system. The queue profile mayinclude a start time indicating when the media playback system willbegin playback of the queue, a play duration indicating a total amountof time that the media playback system will playback media items fromthe queue, zone groupings, a mood setting, and/or a queue genre. Thequeue profile might be stored in the database 131.

A mood setting may indicate a playback queue theme that guides orotherwise suggests the type of media items that invitation recipientsshould add to the playback queue. For example, a mood setting might be“slow romantic”, “dance party”, or “lights on . . . time to go home”,among other examples. The mood setting might transition throughout thequeue, or the mood setting might be fixed. For instance, a mood settingmight transition from “dance party” to “slow romantic” to “lights on . .. time to go home”, which might correspond to the various phases of theevent (e.g., a party) where the playback queue will be played.

In some implementations, the mood setting might limit what media itemscan be added to the playback queue via a “mood filter.” The mood filtermight filter a media item based on one or more attributes of the mediaitem, such as the genre of the media item or one or more words from themedia item title. For example, if the mood setting is “slow romantic”,the mood filter might reject the addition of a media item titled “PartyRock.” In example implementations, the mood filter might additionally oralternatively filter items based on the underlying content of the mediaitem. For example, if the mood setting is set to “dance party”, the moodfilter might reject the addition of media items that have a slow-tempofor instance. Other examples are possible as well.

A queue genre may indicate the genre of media items that invitationrecipients are permitted to add to the playback queue. For example, thequeue genre may be “Country” and thus the invitation recipients may belimited to add only Country media items to the playback queue. Otherexamples are certainly possible.

Once the electronic invitation is received, the computing device 120 maycause a graphical display of the computing device 120 to display theelectronic invitation. FIG. 10A depicts an example graphical display1000 displaying an example electronic invitation 1002. As depicted, theelectronic invitation 1002 is in the form of a text message and includestextual request data 1004 and link 1006. It should be understood thatthe graphical display 1000 displays but one example of a displayedelectronic invitation and should not be construed to be limiting.

b. Causing Graphical Display to Display Information Identifying MediaItems Available for Playback

At block 804, the method 800 may involve causing by the computing devicea graphical display to display the information identifying the set ofmedia items available for playback by the media playback system. Thedisplayed information may be configured to be interactive such that auser may add one or more media items to the playback queue by selectingan aspect of the displayed information.

In some implementations, the information identifying the set of mediaitems may include one or more identifiers that are associated with oneor more respective media items from the set of media items. In someexamples, the identifiers may include: a media item title, an artistname, an album title, a genre, and a streaming source name, among otheridentifier types.

In example implementations, causing by the computing device thegraphical display to display the information identifying the set ofmedia items may involve causing the graphical display to display theinformation via a web interface. For example, a web browser may displayon the graphical display of the computing device 120 a web page thatincludes a representation of the set of media items of the mediaplayback system 110. The web page may be used to add media items to aplayback queue without requiring the computing device 120 to beconfigured with an application associated with the media system server130. As such, the web page may include one or more selectable aspectsthat are configured to, when selected, allow a user to add a media itemto the playback queue.

The web interface may be searchable such that a user may enter searchcriteria to navigate the set of media items. For example, the webinterface may allow a user to search the set of media items by one ormore media-item identifiers. Further, the web interface may beconfigured to display a playlist in real-time as the playback queue isbeing created and/or modified. The web interface may also be configuredto display the playlist after the event. Additionally, the web interfacemay be configured to permit a user to select one or more media itemsfrom a current playback queue and add the selected media items toanother playback queue (e.g., a playback queue associated with adifferent media playback system).

FIG. 10B depicts an example graphical display 1010 displaying an exampleweb interface, according to example embodiments. As shown, the webinterface may include a queue name tied to the event 1012, an option toview the media items in the current queue 1014, an option to search theset of media items for available media items 1016 (as shown, this optionhas been selected), and further options to browse by track (as shown,this option has been selected), album, or artist 1018, among otherpossibilities. The web interface may also include search results 1020(e.g., from a browse-by-track search) that may include one or media itemtitles and respective artists of the respective media items. Each of thedisplayed media items may also include a respective add-item-to-queueaspect 1022 that, when selected, generates selection data (for sendingin accordance with block 806, discussed below) that indicates that therespective media item is to be added to the playback queue.

FIG. 10C depicts another graphical display 1030 displaying an exampleweb interface. In example implementations, the web interface may bedisplayed as a result of a selection of the queue option 1014 from FIG.10B. As shown, the web interface may include the queue name tied to theevent 1012, the option to view the media items in the current queue 1014(as shown, this option has been selected) the option to search the setof media items for available media items 1016, and the current playlist1032 that displays the media items currently in the playback queue. Eachmedia item in the current playlist 1032 may include a respective voteaspect 1034 that, when selected, generates vote data (for sending inaccordance with block 806, discussed below) that indicates either a voteto move the given media item up or down in the playlist. It should beunderstood that the graphical displays 1010 and 1030 are but twoexamples of displays of the information identifying the set of mediaitems and should not be construed as limiting.

Other information may be accessible from the web interface as well. Forexample, the other information may include event information (e.g., thedate, the time, the location, the guest list of the event, etc.), a linkto a map or a web page with directions to the event, and/or a link toadd annotation information to the media items that a particular useradded to the playback queue, among other additional information. The webinterface may also be configured to allow a user to provide a commentregarding the event and/or tag an image from the event after the eventhas occurred.

In some implementations, where the computing device 120 is configuredwith an application associated with the media system server 130, causingby the computing device the graphical display to display the informationidentifying the set of media items may involve launching the applicationand causing the graphical display to display the information via anapplication interface. The application interface may be configured thesame as or similar to the web interface herein described.

In example implementations, causing by the computing device thegraphical display to display the information identifying the set ofmedia items may involve receiving link-select data by the computingdevice that indicates a selection of the link. For example, thecomputing device 120 may receive input data via an input at an inputinterface of the computing device 120 that indicates a selection of thelink in the electronic invitation.

In some implementations, the web interface may additionally oralternatively provide a mechanism by which a user may search for mediaitems and/or services not currently available for playback by the mediaplayback system and add such media items and/or services to the playbackqueue. That is, in such an implementation, a user might use the webinterface to identify or otherwise suggest a media item for the mediaplayback system to make available for playback.

c. Sending Selection Data

At block 806, the method 800 may involve sending by the computing deviceselection data that indicates a selection of a particular media itemfrom the set of media items to be added to the playback queue of themedia playback system. In example implementations, sending the selectiondata might involve the computing device 120 sending the selection datato the media system server 130 via the WAN 140.

The selection of the particular media item may involve a selection of amedia item title, an artist name, an album title, a genre, a streamingsource name, or a selectable aspect associated with any of the former,or any combination thereof. Additionally or alternatively, the selectionof the particular media item may involve a selection of a voting aspectassociated with the particular media item.

In example implementations, sending by the computing device selectiondata may involve receiving a selection input by an input interface ofthe computing device that indicates a selection of one or more mediaitems from the displayed information identifying the set of media itemsavailable for playback by the media playback system. For example,referring back to FIG. 10B, a selection input may involve a userselecting one of the add-item-to-queue aspects 1022 via the computingdevice 120. Or, referring back to FIG. 10C, a selection input mayinvolve a user selecting one of the voting aspects 1034 associated witha media item. The computing device 120 may then send the selection datato the media system server 130 via the WAN 140.

In an implementation where a user may add a media item not currentlyavailable for playback by the media playback system, the selection datamight include a URL or some other location mechanism that specifies anaddress to the particular media item not currently available forplayback that is located at a resource that is connected to the WAN 140.

d. Sending Annotation Data

At block 808, the method 800 may optionally or additionally involvesending by the computing device annotation data that indicatesannotation information that is associated with the selection to be addedto the playback queue. Similar to sending the selection data, sendingthe annotation data might involve the computing device 120 sending theannotation data to the media system server 130 via the WAN 140.

As described above, in certain implementations other information may beaccessible from the web interface, such as a link to add annotationinformation to the media items that a particular user added to theplayback queue. That is, in addition to adding a media item to theplayback queue, a user may add an annotation to let others know whoadded the media item and/or why the media item was added for instance.Example annotation information may include a message, an image, a video,and/or a social media status, among other possibilities. When a useradds annotation information to a media item, the computing device 120may send corresponding annotation data (that indicates the annotationinformation) that may include message data, image data, and/or videodata for example. Other annotation data is also possible.

In certain embodiments, the annotation data may be sent by a computingdevice during the event (e.g., while a media item is playing). Forexample, while a media playback system is playing back a media item, acomputing device may capture image data and send the image data asannotation data associated with the media item. Other examples arecertainly possible.

The annotation information may be displayed at a graphical display(e.g., of one or more of the computing devices 120-126 and/or acontroller device of the media playback system 110) when the graphicaldisplay is displaying a representation of the media item that theannotation information is associated with. An example of displayedannotation information is discussed below with reference to FIG. 10D.

2. Second Example Method

FIG. 9 illustrates a method 900 for remotely creating a playback queueof a media playback system, according to example embodiments. The method900 may be carried out by a computing system (e.g., the media systemserver 130).

The method 900 may optionally begin at block 902 with receiving by acomputing system from a given computing device instruction data thatincludes an instruction to provide a plurality of electronic invitationsto a plurality of respective remote computing devices. At block 904, themethod 900 may involve providing, by the computing system that iscommunicatively coupled to a media playback system via a WAN, theplurality of electronic invitations to the plurality of respectiveremote computing devices to add at least one media item to a playbackqueue of the media playback system, where each of the plurality ofelectronic invitations comprises a link to access informationidentifying one or more media items available for playback by the mediaplayback system. In certain implementations, the method 900 may begin atblock 904. At block 906, the method 900 may involve receiving by thecomputing system selection data that indicates one or more media itemselections associated with one or more of the plurality of electronicinvitations. At block 908, the method 900 may involve populating by thecomputing system the playback queue based on the one or more media itemselections indicated by the received selection data. At block 910, themethod 900 may optionally involve, responsive to the expiration of apredefined amount of time, preventing by the computing system any futuremedia item selections. At block 912, the method 900 may optionallyinvolve providing a media item to the media playback system forplayback.

As mentioned above, blocks 902, 910 and 912 are optional. That is, themethod 900 may involve blocks 904-908 without any additional blocks, orthe method 900 may involve blocks 904-908 and one or more of theoptional blocks 902, 910, and 912. Each of the blocks shown with respectto FIG. 9 is discussed further below.

a. Receiving Instruction Data

The method 900 may optionally begin at block 902 with receiving by acomputing system from a given computing device instruction data thatincludes an instruction to provide a plurality of electronic invitationsto a plurality of respective remote computing devices. In exampleembodiments, the media system sever 130 may receive from the computingdevice 126 instruction data that includes an instruction to provide aplurality of electronic invitations to the remote computing devices120-124. The instruction data may be based on one or more inputs at aninput interface of the computing device 126. A graphical display of thecomputing device 126 may display prompts for a user to input invitationdata to be sent to the plurality of remote computing devices 120-124.

In some embodiments, the given computing device may be associated with amedia playback system. As described above with reference to FIG. 1A, thecomputing device 126 may be associated with the media playback system110 in that the computing device 126 may control access to a set ofmedia items available for playback by the media playback system 110and/or associated playback queues. Other associations are also possible.

Generally speaking, the instruction data may include data that indicatesthe contents of the electronic invitations (e.g., a request to add atleast one media item to a playback queue and a link to access the set ofmedia items) and other information related to the event. In particular,the instruction data may include event data that may indicate a time, adate, and/or a location of the event. Further, the instruction data mayinclude invitation data that may indicate a time element of theinvitation (e.g., how long recipients may add media items to theplayback queue), any queue addition limitations (e.g., a limited orunlimited number of media items each recipient is permitted to add to aplayback queue), a queue name tied to the event, and/or a means to sharethe electronic invitations with the remote computing devices (e.g., viaan email, a text message, or a social media network identifierassociated with the remote computing devices). It should be understoodthat the above are just examples of data that the instruction data mightinclude and should not be construed as limiting.

b. Providing Electronic Invitations

At block 904, the method 900 may involve providing, by the computingsystem that is communicatively coupled to a media playback system via aWAN, the plurality of electronic invitations to the plurality ofrespective remote computing devices to add at least one media item to aplayback queue of the media playback system, where each of the pluralityof electronic invitations comprises a link to access informationidentifying one or more media items available for playback by the mediaplayback system. As noted above, in certain embodiments, the method 900may begin at block 904.

In example embodiments, the media system server 130 may provide theplurality of electronic invitations to the remote computing devices120-124 via the WAN 140. Each of the plurality of electronic invitationsmay include a link to access information identifying the set of mediaitems available for playback by the media playback system 110. Theelectronic invitation and link may be the same as or similar to theelectronic invitation and link discussed above with reference to block802 of FIG. 8.

c. Receiving Selection Data

At block 906, the method 900 may involve receiving by the computingsystem selection data that indicates one or more media item selectionsassociated with one or more of the plurality of electronic invitations.In example embodiments, the media system server 130 may receive theselection data from one or more of the computing devices 120-124 via theWAN. The selection data may be the same as or similar to the selectiondata discussed above with reference to block 806 of FIG. 8. For example,the media system server 130 may receive the selection data after thecomputing device 120 performs block 806 of FIG. 8.

As discussed above, in some implementations, the selection data mayinclude vote data that indicates an up or down vote for a media itemcurrently in the playback queue. The computing system may also receiveannotation information from a remote computing device that is associatedwith the selection data. For example, the annotation information mayinclude a message, and/or an image, among other possibilities.

In an implementation where the selection data includes a locationmechanism that specifies an address to a media item not currentlyavailable for playback, after receiving such selection data, thecomputing system may then verify that the media item located at theaddress is playable at the media playback system. If the computingsystem determines that the media item is not playable, the computingsystem may discard that media item and may send data back to thecomputing device from which the selection data originated indicatingthat the media item is not playable. Other possibilities also exist.

d. Populating Playback Queue

At block 908, the method 900 may involve populating by the computingsystem the playback queue based on the one or more media item selectionsindicated by the received selection data. That is, the computing system(e.g., the media system server 130) may create or modify the playbackqueue by adding, removing, and/or re-ordering one or more media itemsbased on the selections.

Populating the playback queue may involve the computing system placingthe media item corresponding to the selection at the bottom or the topof the playback queue as the computing system receives the selections.Alternatively, populating the playback queue may involve the computingsystem placing the media item corresponding to the selection at a randomspot within the playback queue. Further, populating the playback queuemay involve the computing system moving a media item up or down in theplayback queue order based on vote data.

In an implementation where the playback queue includes a mood setting,populating the playback queue may involve the computing systemautomatically placing the media item corresponding to the selection at aspot within the playback queue based on the mood setting and one or moreattributes of the media item and/or the underlying content of the mediaitem. For instance, continuing from the above example where the playbackqueue has a transitioning mood setting of “dance party” to “slowromantic” to “lights on . . . time to go home”, the computing systemmight place a media item with a slow tempo in the portion of theplayback queue that corresponds to the “slow romantic” mood setting. Onthe other hand, if the media item has a title such as “Closing Time”,the computing system might place the media item in the portion of theplayback queue that corresponds to the “lights on . . . time to go home”mood setting. Other examples are certainly possible. In other suchimplementations, the computing system might order the selections basedon a

e. Preventing Future Selections

At block 910, the method 900 may optionally or additionally involve,responsive to the expiration of a predefined amount of time, preventingby the computing system any future media item selections. That is, incertain embodiments where the electronic invitations include a timeelement, the computing system may no longer allow invitation recipientsto add media items to the playback queue after the time element expires.The time element may be the same as or similar to the time elementdescribed above with reference to block 802 of FIG. 8.

In example embodiments, after preventing any future media itemselections, recipients may still be able to view the playback queue, andin some embodiments, recipients may still be able to vote on moving aparticular media item up or down in the playlist order. Other examplesare also possible.

f. Providing Media Item

At block 912, the method 900 may optionally or additionally involveproviding a media item to the media playback system for playback. Inexample embodiments, providing the media item to the media playbacksystem for playback may involve the media system server 130 sending themedia item or a pointer (or other location mechanism) for the underlyingcontent of the media item to the media playback system 110.

In certain implementations, the method 900 may optionally oradditionally involve providing by the computing system a playlist thatincludes information that identifies the current media items in theplayback queue. The computing device may provide the playlist to one ormore of the computing devices 120-126 and/or a controller device of themedia playback system 110. FIG. 10C may depict an example of a playlistprovided by the computing system when output by a web interface on aremote computing device. Other examples are also possible. The computingsystem may provide the playlist before the event, during the event whilethe media playback system is playing media items, and/or after theevent.

In some implementations, the method 900 may optionally or additionallyinvolve providing by the computing system annotation data that indicatesannotation information that is associated with a particular media itemidentified in the playlist. The annotation data may include message dataand/or image data that indicates a message or image, respectively,associated with a particular media item. The computing system mayprovide the annotation information (e.g., a remote computing device maydisplay the annotation information via a graphical display) before theevent, during the event while the corresponding media item is played,and/or after the event.

FIG. 10D depicts an example graphical display 1050 displaying an exampleweb interface that includes annotation data. As shown, the web interfacemay display the current media item playing 1052, an album art associatedwith the media item 1054, and annotation data in the form of a message1056. It should be understood that the graphical display 1050 is but oneexample of a display of annotation data and should not be construed aslimiting.

IX. Conclusion

The descriptions above disclose various example systems, methods,apparatus, and articles of manufacture including, among othercomponents, firmware and/or software executed on hardware. However, suchexamples are merely illustrative and should not be considered aslimiting. For example, it is contemplated that any or all of thesefirmware, hardware, and/or software components can be embodiedexclusively in hardware, exclusively in software, exclusively infirmware, or in any combination of hardware, software, and/or firmware.Accordingly, while the following describes example systems, methods,apparatus, and/or articles of manufacture, the examples provided are notthe only way(s) to implement such systems, methods, apparatus, and/orarticles of manufacture.

As provided in the embodiments discussed above, the present applicationmay allow for remotely creating a playback queue of a media playbacksystem by remote computing devices in communication with the mediaplayback system via a WAN. In one aspect, a method is provided. Themethod involves receiving by a computing device an electronic invitationto add at least one media item to a playback queue of a media playbacksystem, where the electronic invitation comprises a link to accessinformation identifying a set of media items available for playback bythe media playback system, and where the computing device and the mediaplayback system are communicatively coupled via at least a WAN. Themethod further involves causing by the computing device a graphicaldisplay to display the information identifying the set of media itemsavailable for playback by the media playback system. The method furtherinvolves sending by the computing device selection data that indicates aselection of a particular media item from the set of media items to beadded to the playback queue of the media playback system.

In another aspect, a non-transitory computer readable medium isprovided. The non-transitory computer readable having instructionsstored thereon that are executable by at least one processor. Theinstructions include instructions for receiving by a computing device anelectronic invitation to add at least one media item to a playback queueof a media playback system, where the electronic invitation comprises alink to access information identifying a set of media items availablefor playback by the media playback system, and where the computingdevice and the media playback system are communicatively coupled via atleast a WAN. The instructions further include instructions for causingby the computing device a graphical display to display the informationidentifying the set of media items available for playback by the mediaplayback system. The instructions further include instructions forsending by the computing device selection data that indicates aselection of a particular media item from the set of media items to beadded to the playback queue of the media playback system.

In one other aspect, a computing device is provided. The computingdevice includes a graphical display, a network interface, anon-transitory computer readable medium, and program instructions storedon the non-transitory computer readable medium. The program instructionsare executable by at least one processor to cause the computing deviceto receive an electronic invitation to add at least one media item to aplayback queue of a media playback system, where the electronicinvitation comprises a link to access information identifying a set ofmedia items available for playback by the media playback system, andwhere the computing device and the media playback system arecommunicatively coupled via at least a WAN. The program instructions areexecutable by the at least one processor to further cause the computingdevice to cause the graphical display to display the informationidentifying the set of media items available for playback by the mediaplayback system. The program instructions are executable by the at leastone processor to further cause the computing device to send selectiondata that indicates a selection of a particular media item from the setof media items to be added to the playback queue of the media playbacksystem.

In another aspect, a method is provided. The method involves providing,by a computing system that is communicatively coupled to a mediaplayback system via a WAN, a plurality of electronic invitations to aplurality of respective remote computing devices to add at least onemedia item to a playback queue of the media playback system, where eachof the plurality of electronic invitations comprises a link to accessinformation identifying one or more media items available for playbackby the media playback system. The method further involves receiving bythe computing system selection data that indicates one or more mediaitem selections associated with one or more of the plurality ofelectronic invitations. The method further involves populating by thecomputing system the playback queue based on the one or more media itemselections indicated by the received selection data.

In an additional aspect, a non-transitory computer readable medium isprovided. The non-transitory computer readable having instructionsstored thereon that are executable by at least one processor. Theinstructions include instructions for providing, by a computing systemthat is communicatively coupled to a media playback system via a WAN, aplurality of electronic invitations to a plurality of respective remotecomputing devices to add at least one media item to a playback queue ofthe media playback system, where each of the plurality of electronicinvitations comprises a link to access information identifying one ormore media items available for playback by the media playback system.The instructions further include instructions for receiving by thecomputing system selection data that indicates one or more media itemselections associated with one or more of the plurality of electronicinvitations. The instructions further include instructions forpopulating by the computing system the playback queue based on the oneor more media item selections indicated by the received selection data.

In a further aspect, a computing system is provided. The computingdevice includes a network interface, a non-transitory computer readablemedium, and program instructions stored on the non-transitory computerreadable medium. The network interface communicatively couples thecomputing system to a media playback system via a WAN. The programinstructions are executable by at least one processor to cause thecomputing system to provide a plurality of electronic invitations to aplurality of respective remote computing devices to add at least onemedia item to a playback queue of the media playback system, where eachof the plurality of electronic invitations comprises a link to accessinformation identifying one or more media items available for playbackby the media playback system. The program instructions are executable bythe at least one processor to further cause the computing device toreceive selection data that indicates one or more media item selectionsassociated with one or more of the plurality of electronic invitations.The program instructions are executable by the at least one processor tofurther cause the computing device to populate the playback queue basedon the one or more media item selections indicated by the receivedselection data.

Additionally, references herein to “embodiment” means that a particularfeature, structure, or characteristic described in connection with theembodiment can be included in at least one example embodiment of theinvention. The appearances of this phrase in various places in thespecification are not necessarily all referring to the same embodiment,nor are separate or alternative embodiments mutually exclusive of otherembodiments. As such, the embodiments described herein, explicitly andimplicitly understood by one skilled in the art, can be combined withother embodiments.

The specification is presented largely in terms of illustrativeenvironments, systems, procedures, steps, logic blocks, processing, andother symbolic representations that directly or indirectly resemble theoperations of data processing devices coupled to networks. These processdescriptions and representations are typically used by those skilled inthe art to most effectively convey the substance of their work to othersskilled in the art. Numerous specific details are set forth to provide athorough understanding of the present disclosure. However, it isunderstood to those skilled in the art that certain embodiments of thepresent disclosure can be practiced without certain, specific details.In other instances, well known methods, procedures, components, andcircuitry have not been described in detail to avoid unnecessarilyobscuring aspects of the embodiments. Accordingly, the scope of thepresent disclosure is defined by the appended claims rather than theforgoing description of embodiments.

When any of the appended claims are read to cover a purely softwareand/or firmware implementation, at least one of the elements in at leastone example is hereby expressly defined to include a tangible mediumsuch as a memory, DVD, CD, Blu-ray, and so on, storing the softwareand/or firmware.

We claim:
 1. A cloud computing system comprising one or more cloudservers, the one or more cloud servers comprising: a network interface;one or more processors; and data storage having stored thereininstructions executable by the one or more processors to cause the cloudcomputing system to perform operations comprising: receiving, via thenetwork interface from a first mobile device over a wide area network,one or more messages representing an instruction to create a playlistfor an event; in response to receiving the one or more messagesrepresenting the instruction to create a playlist for an event, creatingthe playlist in data storage; sending, to multiple second mobile devicesvia the network interface over the wide area network, one or morerespective invitations to the event, wherein each invitation indicates:(i) a future time and date for the event and (ii) a link to a webinterface including user interface controls to add audio tracks from amedia library of a streaming media service to the playlist for theevent; receiving, via the network interface, respective sets of inputdata, each set of input data indicating one or more audio tracksselected via the web interface on a respective second mobile device; inresponse to receiving each set of input data indicating one or morerespective audio tracks selected via the web interface, adding the oneor more respective audio tracks selected via the web interface to theplaylist; and during the event, causing, via the network interface, theplaylist to be queued in a queue of a media playback system for playbackby one or more playback devices of the media playback system.
 2. Thecloud computing system of claim 1, wherein the media playback systemcomprises multiple playback devices configured to play back the queue insynchrony in a party mode, and wherein causing the playlist to be queuedin the queue of the media playback system comprises causing the playlistto be queued in a local queue stored on at least one of the multipleplayback devices for playback in synchrony by the multiple playbackdevices during the event.
 3. The cloud computing system of claim 1,wherein the web interface is hosted by the one or more cloud servers,and wherein the operations further comprise: during the event, updatingthe web interface to include (i) an indication of the queue of the mediaplayback system and (ii) an indication of the currently playing audiotrack of the queue.
 4. The cloud computing system of claim 1, whereinthe web interface is hosted by the one or more cloud servers, andwherein the operations further comprise: during the event, updating theweb interface to include controls to modify the queue of the mediaplayback system.
 5. The cloud computing system of claim 1, wherein theone or more messages representing the instruction to create a playlistfor an event comprise a mood for the event; and wherein the operationsfurther comprise: in response to receiving each set of input dataindicating one or more respective audio tracks selected via the webinterface, filtering audio tracks having attributes that areinconsistent with the mood for the event from the playlist.
 6. The cloudcomputing system of claim 1, wherein the operations further comprise:before sending the electronic invitations to the event, receiving, fromthe first mobile device, input data indicating one or more initial audiotracks selected via the web interface; and in response to receiving theinput data indicating one or more initial audio tracks selected via theweb interface, adding the one or more initial audio tracks selected viathe web interface to the playlist.
 7. The cloud computing system ofclaim 6, wherein the web interface is hosted by the one or more cloudservers, and wherein the operations further comprise: after adding theone or more initial audio tracks selected via the web interface to theplaylist, updating the web interface to include an indication of theplaylist, the playlist including at least the one or more initial audiotracks.
 8. The cloud computing system of claim 1, wherein the medialibrary of the streaming media service is hosted by the one or morecloud servers, and wherein the operations further comprise: during theevent, streaming audio tracks queued in the queue of the media playbacksystem to at least one playback device of the one or more playbackdevices for playback by the one or more playback devices.
 9. The cloudcomputing system of claim 1, wherein the web interface is hosted by theone or more cloud servers, and wherein the operations further comprise:receiving, from a given second mobile device, input data indicating theselection of the link to the web interface; and in response to receivinginput data indicating the selection of the link to the web interface,causing the given second mobile device to display the web interface, theweb interface including (1) user interface controls to search a medialibrary of a streaming media service for audio tracks to add to theplaylist for the event and (2) user interface controls to browse a medialibrary of a streaming media service for audio tracks
 10. A methodcomprising: receiving, via a network interface of a cloud computingsystem from a first mobile device over a wide area network, one or moremessages representing an instruction to create a playlist for an event;in response to receiving the one or more messages representing theinstruction to create a playlist for an event, creating, via the cloudcomputing system, the playlist in data storage; sending, to multiplesecond mobile devices via the network interface of the cloud computingsystem over the wide area network, one or more respective invitations tothe event, wherein each invitation indicates: (i) a future time and datefor the event and (ii) a link to a web interface including userinterface controls to add audio tracks from a media library of astreaming media service to the playlist for the event; receiving, viathe network interface of the cloud computing system, respective sets ofinput data, each set of input data indicating one or more audio tracksselected via the web interface on a respective second mobile device; inresponse to receiving each set of input data indicating one or morerespective audio tracks selected via the web interface, adding, via thecloud computing system, the one or more respective audio tracks selectedvia the web interface to the playlist; and during the event, causing,via the network interface of the cloud computing system, the playlist tobe queued in a queue of a media playback system for playback by one ormore playback devices of the media playback system.
 11. The method ofclaim 10, wherein the media playback system comprises multiple playbackdevices configured to play back the queue in synchrony in a party mode,and wherein causing the playlist to be queued in the queue of the mediaplayback system comprises causing the playlist to be queued in a localqueue stored on at least one of the multiple playback devices forplayback in synchrony by the multiple playback devices during the event.12. The method of claim 10, wherein the web interface is hosted by theone or more cloud servers, and wherein the operations further comprise:during the event, updating the web interface to include (i) anindication of the queue of the media playback system and (ii) anindication of the currently playing audio track of the queue.
 13. Themethod of claim 10, wherein the web interface is hosted by the one ormore cloud servers, and wherein the method further comprises: during theevent, updating the web interface to include controls to modify thequeue of the media playback system.
 14. The method of claim 10, whereinthe one or more messages representing the instruction to create aplaylist for an event comprise a mood for the event; and wherein themethod further comprises: in response to receiving each set of inputdata indicating one or more respective audio tracks selected via the webinterface, filtering audio tracks having attributes that areinconsistent with the mood for the event from the playlist.
 15. Themethod of claim 10, further comprising: before sending the electronicinvitations to the event, receiving, from the first mobile device, inputdata indicating one or more initial audio tracks selected via the webinterface; and in response to receiving the input data indicating one ormore initial audio tracks selected via the web interface, adding the oneor more initial audio tracks selected via the web interface to theplaylist.
 16. The method of claim 15, wherein the web interface ishosted by the one or more cloud servers, and wherein the method furthercomprises: after adding the one or more initial audio tracks selectedvia the web interface to the playlist, updating the web interface toinclude an indication of the playlist, the playlist including at leastthe one or more initial audio tracks.
 17. The method of claim 10,wherein the media library of the streaming media service is hosted bythe one or more cloud servers, and wherein the method further comprises:during the event, streaming audio tracks queued in the queue of themedia playback system to at least one playback device of the one or moreplayback devices for playback by the one or more playback devices. 18.The method of claim 10, wherein the web interface is hosted by the oneor more cloud servers, and wherein the method further comprises:receiving, from a given second mobile device, input data indicating theselection of the link to the web interface; and in response to receivinginput data indicating the selection of the link to the web interface,causing the given second mobile device to display the web interface, theweb interface including (1) user interface controls to search a medialibrary of a streaming media service for audio tracks to add to theplaylist for the event and (2) user interface controls to browse a medialibrary of a streaming media service for audio tracks.
 19. A tangible,non-transitory computer-readable media having stored thereininstructions executable by one or more processors to cause a cloudcomputing system to perform operations comprising: receiving, via anetwork interface from a first mobile device over a wide area network,one or more messages representing an instruction to create a playlistfor an event; in response to receiving the one or more messagesrepresenting the instruction to create a playlist for an event, creatingthe playlist in data storage; sending, to multiple second mobile devicesvia the network interface over the wide area network, one or morerespective invitations to the event, wherein each invitation indicates:(i) a future time and date for the event and (ii) a link to a webinterface including user interface controls to add audio tracks from amedia library of a streaming media service to the playlist for theevent; receiving, via the network interface, respective sets of inputdata, each set of input data indicating one or more audio tracksselected via the web interface on a respective second mobile device; inresponse to receiving each set of input data indicating one or morerespective audio tracks selected via the web interface, adding the oneor more respective audio tracks selected via the web interface to theplaylist; and during the event, causing, via the network interface, theplaylist to be queued in a queue of a media playback system for playbackby one or more playback devices of the media playback system.
 20. Thetangible, non-transitory computer-readable media of claim 19, whereinthe web interface is hosted by the one or more cloud servers, andwherein the operations further comprise: receiving, from a given secondmobile device, input data indicating the selection of the link to theweb interface; and in response to receiving input data indicating theselection of the link to the web interface, causing the given secondmobile device to display the web interface, the web interface including(1) user interface controls to search a media library of a streamingmedia service for audio tracks to add to the playlist for the event and(2) user interface controls to browse a media library of a streamingmedia service for audio tracks.